﻿
function save_config( block_id ) {
var dlgID = block_id;
var timerID = 0;
var state = 0;
var optdlg = $('#'+dlgID);

this.hide = function() { 
//$('#'+this.vdiv).hide();
};
    
this.show = function() {
var newdlg = $('#'+dlgID+' > div').length ? false : true;

    if( newdlg ) {
        optdlg.hide();
        optdlg.html(
            '<div class="ui-widget-header ui-corner-all"><span>Перезагрузка Анти-Спам фильтра</span></div>'+
            '<div class="ui-widget-content  ui-corner-all"><table><tr><td><img src="'+ipdepo.ICON_LOAD+'"></td>'+
            '<td>Выполняется ...</td></tr></table></div>'        
        );
        
        $('#'+dlgID).addClass('ui-widget');
    }
    
    if( !state && $('#'+dlgID).css('display') == 'none' ) {
        ipdepo.confirm('AlertDlg', 'Требуется подтверждение', 
            'Сохранить и применить сделанные изменения ?',
            ipdepo.ICON_QUEST, send_request, "Hello" ); 
    }
}

// 0 - Нет данных для сохранения или все выполнено 
//      (need=0, f(sync)=0). Свернуть все.
// 1 - Данные нужно сохранить но перезагрузка еще не затребована 
//      (need=0, f(sync)=1). Старт перезагрузки.
// 2 - Данные уже сохранены и перезагрузка затребована 
//      (need=1, f(sync)=0). Ожидание завершения.
// 3 - Данные нужно сохранять но предидущая перезагрузка еще не выполнена 
//      (need=1, f(sync)=1). Ожидание завершения, но уже есть обновления.
//
var send_request = function() {
    $.post('opts/do_save.php', { oper: "saveandreload" }, function( rsp, textStatus)
    {
        if( rsp.errcode ) {
            if( rsp.errcode == '999' ) {
                alert( "Ваша сессия закончилась по таймауту.\nПожалуйста перерегистрируйтесь." );
                location.href = 'login.php';
            }
            else ipdepo.alert('AlertDlg', 'Ошибка', rsp.errmess, ipdepo.ICON_STOP);
        }
        if( $.isPlainObject(rsp.data) ) {
            state = rsp.data.state;
            if( state == 1 ) {
                optdlg.show('slow');
                timerID = setTimeout( check_state, 5000 );
            }
        }
    }, 'json');
}     



var check_state = function() {
    $.post('opts/check_state.php', { oper: "checkreloadstate" }, function( rsp, textStatus)
    {
        if( rsp.errcode ) {
            if( rsp.errcode == '999' ) {
                alert( "Ваша сессия закончилась по таймауту.\nПожалуйста перерегистрируйтесь." );
                location.href = 'login.php';
            }
            else {
                optdlg.hide('slow');
                if( timerID ) {
                    clearTimeout( timerID );
                    timerID = 0;
                }            
                ipdepo.alert('AlertDlg', 'Ошибка', rsp.errmess, ipdepo.ICON_STOP);
            }
        }
        if( $.isPlainObject(rsp.data) ) {
            state = rsp.data.state;
            if( state == 0 ) {
//            if( state < 2 ) {
                optdlg.hide('slow');
                if( timerID ) {
                    clearTimeout( timerID );
                    timerID = 0;
                }
            }
            else
                timerID = setTimeout( check_state, 5000 );
        }
    }, 'json');
    
};

};